
package middleware;

/*
 * En session används för att mappa en redan inloggad användares Uid till
 * en UUID som skickas till klienten.
 * en session är bara giltig i 1 timma efter att den senast användes.
 */
public class Session {
    private String UUID;
    private int UID;
    private long expire;

    public Session(){
        
    }

    public Session(int UID){
        this.UUID = java.util.UUID.randomUUID().toString();
        this.UID = UID;
        refreshExpireDate();
    }

    public Session(String UUID, int UID, long expire) {
        this.UUID = UUID;
        this.UID = UID;
        this.expire = expire;
    }

    int getUID(){
        if(!hasExpired())
            return UID;
        return -1;
    }

    String getUUID(){
        return UUID;
    }

    void refreshExpireDate(){
        this.expire = System.currentTimeMillis() + aHoursInMili();
    }

    boolean hasExpired(){
        if(System.currentTimeMillis() > expire)
            return true;
        return false;
    }


    static long aSecInMili(){
        return new Long(1000);
    }
    static long aMinInMili(){
        return new Long(aSecInMili()*60);
    }
    static long aHoursInMili(){
        return new Long(aMinInMili()*60);
    }
}
